﻿using GrainManage.Data.Model.Form;
using GrainManage.Data.Model.Table;
using GrainManage.Data.Model.View;

namespace GrainManage.Core.Service.Interfaces
{
    public interface IAccountService
    {
        AccountTable Get(string userName);

        AccountView GetAccountView(string userName);

        int LogLogin(string userName, string ip);

        string ResetGuid(string userName);

        bool Validate(string userName, string pwd);

        int Register(RegisterForm account);

        string ResetPassword(string userName, string email);

        int ChangePassword(string userName, string oldPwd, string newPwd);

        int ManageAccount(ManageForm manage);

        bool ChangeOnLineState(string userName, bool isOnLine);

        bool ResetActiveTime(string userName);

        string ResetEncryptKey(string userName);

        string GetRandomString(string seed, int length);
    }
}
